using System;
using System.ComponentModel.DataAnnotations;

namespace ERP.MasterData.Dtos
{
    /// <summary>
    /// 更新物料/产品DTO
    /// </summary>
    public class UpdateMaterialDto
    {
        /// <summary>
        /// 物料ID
        /// </summary>
        public int Id { get; set; }
        
        /// <summary>
        /// 物料编码
        /// </summary>
        [Required(ErrorMessage = "物料编码不能为空")]
        [StringLength(50, ErrorMessage = "物料编码长度不能超过50个字符")]
        public string MaterielCode { get; set; }

        /// <summary>
        /// 物料名称
        /// </summary>
        [Required(ErrorMessage = "物料名称不能为空")]
        [StringLength(100, ErrorMessage = "物料名称长度不能超过100个字符")]
        public string MaterielName { get; set; }

        /// <summary>
        /// 物料图片URL
        /// </summary>
        public string MaterielUrl { get; set; }

        /// <summary>
        /// 规格型号
        /// </summary>
        [StringLength(100, ErrorMessage = "规格型号长度不能超过100个字符")]
        public string Specifications { get; set; }

        /// <summary>
        /// 单位ID
        /// </summary>
        [Required(ErrorMessage = "单位不能为空")]
        public string UnitsId { get; set; }

        /// <summary>
        /// 物料/产品类型（0：物料，1：产品）
        /// </summary>
        [Required(ErrorMessage = "物料/产品类型不能为空")]
        [Range(0, 1, ErrorMessage = "物料/产品类型必须为0或1")]
        public int MaterielTypePid { get; set; }

        /// <summary>
        /// 所属分类ID
        /// </summary>
        [Required(ErrorMessage = "所属分类不能为空")]
        public int MaterielTypeld { get; set; }

        /// <summary>
        /// 是否启用（1：启用，0：禁用）
        /// </summary>
        [Range(0, 1, ErrorMessage = "是否启用必须为0或1")]
        public int IsNo { get; set; }

        /// <summary>
        /// 是否设置安全库存（1：是，0：否）
        /// </summary>
        [Range(0, 1, ErrorMessage = "是否设置安全库存必须为0或1")]
        public int IsSecure { get; set; }
    }
} 